var path=require('path');
var webpack=require('webpack');
module.exports={
    //devtool是开发工具，它的作用是生成源代码映射（Source Map），方便调试。
    devtool:'cheap-module-eval-source-map',

    //entry是入口文件
    entry:[
        // 用于热替换功能的webpack-hot-middleware/client。
        // webpack-hot-middleware/client的工作原理是：先连接上服务器，等着接受需要重新编译代码的通知，一旦代码变动，就会收到通知进而更新客户端代码。
        'webpack-hot-middleware/client',
        //entry是入口文件
        './index.js'
    ],
    //output是输出配置
    output:{
        // path表示输出的硬盘路径，不过本例中编译好的代码放在内存中，故此项无用
        path:path.join(__dirname, 'dist'),
        //filename表示输出的文件名称。
        filename:'bundle.js',
        //publicPath则表示公共路径，即所有资源的URL前缀。比如，如果你的HTML页面中有一个<script src="/static/bundle.js"></script>，那么应该将publicPath设为/static/。
        // 在本例中，这个路径是虚拟的（即无法在硬盘中找到这个路径），打包编译后的脚本被保存到了内存中，可以通过localhost:3000/static/bundle.js访问。publicPath选项的用法还有很多，这些我们会在后续章节详细介绍。
        publicPath:'/static/'
    },
    plugins:[
        // webpack.optimize.OccurrenceOrderPlugin 用于给经常使用的模块分配最小长度的ID。
        new webpack.optimize.OccurrenceOrderPlugin(),
        // webpack.HotModuleReplacementPlugin 则用于热替换。
        new webpack.HotModuleReplacementPlugin()
    ],
    module:{
        loaders:[
            {
                test:/\.js$/,
                loaders:['babel'],
                exclude:/node_modules/,
                include:__dirname
            }
        ]
    }
};

